The present invention relates to a method and an electronic microcontroller unit for controlling the torque of a permanent magnet (PM), synchronous, alternating-current (AC) motor over an extended speed range, wherein the method and the microcontroller unit are both suitable for controlling the motor of an electric vehicle.
Recent developmental advances in high-energy batteries, combined with the development of smaller and more powerful motors, have made it possible for new technological and commercial markets to open for a wide range of products, including, for example, portable electric appliances, electric entertainment equipment, and electric vehicles. With particular regard to electric vehicles, improved electric motor drives have also been made possible by the development of solid-state devices such as the MOSFET (metal-oxide-semiconductor field-effect transistor) and the IGBT (insulated-gate bipolar junction transistor), for each of such devices has the capacity for switching and delivering a significant amount of electrical power to a motor. In light of such, along with recent increases in energy costs, energy conservation concerns, environmental concerns, and strict legislation requiring improved internal combustion engine (ICE) efficiency, the motor vehicle industry is pressing for the development of improved electronic motor controls for electric vehicles.
The basic premise on which electronic motor control is based is that the speed, torque, and direction of a motor are all controlled by electronically switching or modulating phase currents and voltages which are ultimately transmitted to the motor. In a closed-loop, electronic motor drive and control system for a synchronous, three-phase, alternating-current (AC) motor, for example, the basic elements of such a system may include: (1) the AC motor, (2) a direct-current (DC) battery (or battery pack), (3) a DC-to-AC inverter, (4) a user command signal device, (5) current sensors, (6) a rotor position sensor, and (7) a microcontroller or microprocessor unit.
In such a system, the user command device is connected to the microcontroller unit and thereby enables a user (that is, the vehicle operator) to select a desired speed or torque at which the motor is to operate. The current sensors are utilized for sensing the phase currents of the motor so that the microcontroller unit can process the currents for feedback control purposes. Similarly, the rotor position sensor is utilized for sensing the position of the rotor of the motor so that the microcontroller unit can instantaneously determine the position and/or speed of the rotor for feedback control purposes as well.
Further in such a system, the DC battery defines a DC power bus which is connected to the inverter, and the inverter is connected to the AC motor. The inverter serves to convert the DC power from the battery into three sinusoidal (AC) phase current signals (ia, ib, ic) which are transmitted to the stator of the motor to thereby operate the motor and control the torque. The inverter includes three drivers wherein each driver is dedicated to driving one of the three AC phase currents. Each driver has two power switches, one xe2x80x9ctopxe2x80x9d switch for driving a particular phase current high and another xe2x80x9cbottomxe2x80x9d switch for driving the same phase current low. Thus, the three drivers of the inverter have a combined total number of six power switches. Common designations for these six power switches are A_TOP, A_BOT, B_TOP, B_BOT, C_TOP, and C_BOT. The individual conductive states (xe2x80x9conxe2x80x9d or xe2x80x9coffxe2x80x9d) of the six power switches dictate both the frequency and the magnitude of the three phase currents which are transmitted to the motor. The inverter receives electrical switching signals from the microcontroller unit which dictate the conductive states of the six power switches at any given point in time.
In general, to properly control the motor, the microcontroller unit must perform two primary tasks. One, the microcontroller unit must generate switching signals for helping the inverter create sinusoidal waveforms for the motor. To accomplish this, the microcontroller unit must implement a xe2x80x9cmodulation technique.xe2x80x9d There are many different types of modulation techniques, some of which include, for example, sinusoidal pulse-width modulation (PWM), third-harmonic PWM, 60xc2x0 PWM, and space vector modulation (SVM). Two, the microcontroller unit must generate electrical control signals for adjusting the frequency and magnitude of the sinusoidal waveforms. To accomplish this, the microcontroller must implement a xe2x80x9ccontrol algorithm.xe2x80x9d Although there are many general types of control algorithms, such as, for example, open-loop volts-per-hertz control, volts-per-hertz with DC current sensing control, direct or indirect vector control (field orientation), and sensorless vector control, a significant number of torque control motor drives implement an indirect xe2x80x9cvector control technique.xe2x80x9d In such a technique, both the phase currents and the rotor position/speed of the motor are sensed to establish closed-loop, feedback control of the motor.
In a vector control technique, electrical signals representing data concerning the sensed phase currents are communicated to the microcontroller unit from the current sensors. In addition, electrical signals representing data concerning the position of the rotor are also communicated to the microcontroller unit from the rotor position sensor. Based on such communicated data, the microcontroller unit then mathematically xe2x80x9cmapsxe2x80x9d the measured phase currents as a stator current vector (Ia) onto a two-axis (direct axis xe2x80x9cd,xe2x80x9d quadrature axis xe2x80x9cqxe2x80x9d) coordinate system for the purpose of achieving feedback control. In such a d-q coordinate system, the stator current vector is broken down into two current components, Id and Iq, which are orthogonal to each other on the coordinate system. The Id current component is used to represent and control the flux of the motor, and the Iq current component is used to represent and control the torque of the motor. If the d-q coordinate system is then mathematically xe2x80x9crotatedxe2x80x9d synchronously with the rotor flux of the motor, both Id and Iq can then be treated and controlled as DC values, and the AC motor can thus be controlled almost as if it were a DC motor. Thus, in this way, independent and decoupled control of both the flux and the torque of the motor is achieved.
In addition to sensing the phase currents and rotor position to generate values for Id and Iq, the microcontroller unit must further implement the vector control technique to also generate a desired value for a first (direct-axis) command current variable (Id*) and a desired value for a second (quadrature-axis) command current variable (Iq*). Generated values for the first command current variable and the second command current variable are ideal values which are most desired and preferred and are used for controlling and operating the motor. These generated values are based on and derived from, for example, the sensed rotor position/speed data, the voltage supplied by the DC battery, and a user command signal, all of which are electrically communicated to the microcontroller unit. In ultimately generating the values based on such communicated information, the microcontroller unit must typically be involved in very complex and time-consuming processing.
Once both the xe2x80x9cmeasuredxe2x80x9d Id and Iq values and the xe2x80x9cpreferredxe2x80x9d Id* and Iq* values are successfully determined and generated, the microcontroller unit then typically utilizes a xe2x80x9ccurrent controllerxe2x80x9d to compare the measured and preferred values. The current controller is basically an implementation of difference equations. Based on the comparison, the current controller then generates electrical control signals, sometimes referred to as xe2x80x9cadjustmentxe2x80x9d or xe2x80x9ccorrection signals,xe2x80x9d which are used to help conform future xe2x80x9cmeasuredxe2x80x9d Id and Iq values with the xe2x80x9cpreferredxe2x80x9d Id* and Iq* values. To accomplish such, the control signals generated by the current controller are subsequently and actively utilized by the microcontroller unit during implementation of the modulation technique.
As briefly alluded to earlier herein, during implementation of the modulation technique, the microcontroller unit generates electrical switching signals which serve to dictate the conductive states of the six power switches of the inverter. In this way, the modulation technique helps the inverter create and modulate sinusoidal waveforms (the phase currents) for ultimate transmittal to the motor. The control signals generated during implementation of the vector control technique are utilized by the microcontroller unit during implementation of the modulation technique to adjust the frequency and magnitude of the sinusoidal waveforms generated by the inverter. By adjusting the frequency and magnitude of the sinusoidal waveforms transmitted to the motor in this manner, feedback control of both the flux and torque of the motor is thereby achieved.
At the present time, many AC motor feedback control systems implement modulation techniques and/or control algorithms which require very complex computations, long processing times, numerous look-up tables, and excessive processing and memory space on a microcontroller or microprocessor. As a result, such motor control systems are typically very costly. Thus, there is a present need in the art for a lower-cost motor control method and/or device which will provide optimal torque control for an AC motor, preferably over an extended speed range, with minimal computational complexity and minimal processing time.
The present invention provides a method for controlling the torque of a permanent magnet (PM), synchronous, alternating-current (AC) motor suitable for an electric vehicle. The motor is powered by an inverter connected to a direct-current (DC) power source, such as a battery. According to the present invention, the method basically includes the steps of communicating a torque command signal from a user to a microcontroller, sensing the alternating-current phase currents of the motor and communicating electrical signals representing data concerning the phase currents to the microcontroller, sensing the position of the rotor of the motor and communicating electrical signals representing data concerning the position of the rotor to the microcontroller, and utilizing the microcontroller to implement a modulation technique to generate electrical switching signals for creating electrical sinusoidal waveforms. In addition, the method also basically includes the step of utilizing the microcontroller to implement a vector control technique to generate electrical control signals for adjusting the frequency and magnitude of the sinusoidal waveforms according to the sensed phase current data, the sensed rotor position data, the voltage supplied by the power source, and the torque command signal. In this particular step, generating the electrical control signals includes the step of referring to look-up tables in an electronic memory only when operating the motor in a constant torque mode. Lastly, the method also basically includes the step of utilizing the microcontroller to communicate the switching signals for creating sinusoidal waveforms to the inverter. In this way, the inverter is able to generate sinusoidal waveforms, as dictated by the switching signals received from the microcontroller, from the power supplied by the DC power source. As a result, the inverter is also able to transmit the sinusoidal waveforms to the motor, thereby ultimately controlling the torque of the motor.
According to a preferred embodiment of the method, sensing the phase currents of the motor is preferably accomplished by utilizing current transducers. In addition, sensing the position of the rotor of the motor is preferably accomplished by utilizing an encoder. Furthermore, utilizing the microcontroller to implement a modulation technique is preferably accomplished by specifically implementing a space vector modulation (SVM) technique.
Further according to a preferred embodiment of the method, generating the electrical control signals for adjusting the frequency and magnitude of the sinusoidal waveforms is preferably accomplished by generating a desired value for a first command current variable, wherein the first command current variable controls the flux of the motor, and also generating a desired value for a second command current variable, wherein the second command current variable controls the torque of the motor. Both the first command current variable value and the second command current variable value are based on the sensed rotor position data, the voltage supplied by the power source, and the torque command signal. Once the desired values are generated, the first command current variable value and the second command current variable value are utilized to help generate the electrical control signals for adjusting the frequency and magnitude of the sinusoidal waveforms. Furthermore, generating the electrical control signals is also preferably accomplished by utilizing a current controller to compare the first command current variable value and the second command current variable value with the sensed phase currents of the motor.
When operating the motor in a constant torque mode, referring to look-up tables in an electronic memory to thereby generate the control signals is preferably accomplished by both referring to only two look-up tables and also referring to the look-up tables according to the torque command signal. In a highly preferred embodiment of the method, referring to look-up tables in an electronic memory to thereby generate the control signals is accomplished by generating a desired value for a first command current variable from a first look-up table, wherein the first command current variable controls the flux of the motor, and also generating a desired value for a second command current variable from a second look-up table, wherein the second command current variable controls the torque of the motor. Both the first look-up table and the second look-up table are utilized only when operating the motor in the constant torque mode. Alternatively, when operating the motor in an extended speed mode, generating the electrical control signals is preferably accomplished by generating a desired value for a first command current variable by varying the first command current variable value until the first command current variable value is as high as permitted by the maximum output voltage of the inverter, wherein the first command current variable controls the flux of the motor, and also generating a desired value for a second command current variable as dictated by the first command current variable value and an inherent current limit of the motor, wherein the second command current variable controls the torque of the motor.
The present invention also provides a device for controlling the torque of a permanent magnet (PM), synchronous, alternating-current (AC) motor suitable for an electric vehicle. The motor is powered by an inverter connected to a direct-current (DC) power source, such as a battery. According to the present invention, the device basically includes means for communicating a torque command signal from a user, means for sensing the alternating-current phase currents of the motor and communicating electrical signals representing data concerning the phase currents, and means for sensing the position of the rotor of the motor and communicating electrical signals representing data concerning the position of the rotor. In addition, the device also basically includes an electronic microcontroller unit electrically connected to the torque command signal communication means, the rotor position sensing means, and the phase current sensing means. The microcontroller unit basically includes means for implementing a modulation technique, to generate electrical switching signals for creating electrical sinusoidal waveforms, and for communicating the electrical switching signals to the inverter to thereby transmit sinusoidal waveforms to the motor and thereby control the torque of the motor. The microcontroller unit also basically includes means for implementing a vector control technique to generate electrical control signals for adjusting the frequency and magnitude of the sinusoidal waveforms according to the phase current data, the rotor position data, the voltage supplied by the power source, and the torque command signal. The vector control technique implementation means includes an electronic memory having look-up tables dedicated to generating the electrical control signals only when operating the motor in a constant torque mode.
According to a preferred embodiment of the device, the phase current sensing means comprises current transducers, and the rotor position sensing means comprises an encoder. The microcontroller unit preferably includes a speed calculator unit for calculating the angular speed of the rotor of the motor by receiving pulse train electrical signals from the encoder. The modulation technique implementing means preferably implements a space vector modulation technique.
Advantages, design considerations, and applications of the present invention will become apparent to those skilled in the art when the detailed description of the best mode contemplated for practicing the invention, as set forth hereinbelow, is read in conjunction with the accompanying drawings.